1. *Galaxtec Blaster
2. *Strike Laser
3. *Railgun (twin)
4. *Rockets
5. Pulse Turret
6. Strong Hull
7. Repair
8. *Spreader
9. *Machine Gun (single)
10. Machine Gun (twin)
11. *Homing Mines
12. Railgun (single)
13. Vulcan
14. Bubbles
15. Screwtape

format:

name (16 char)
equips to (int as binary: xxxxxxxx xxxxxxxx xxxxxxxx xxxxxx[gun2][gun1])
firepattern (int, see [1])
shot collision width array (float, level 0-9)
shot collision height array (float, level 0-9)
shot x velocity array (float, level 0-9)
shot y velocity array (float, level 0-9)
shot damage array (int, level 0-9)
gun reload time array (float, level 0-9)
shot type array (int, level 0-9, see [2])
shot lifespan array (float, level 0-9, see [3])
shot evolution array (8-bit signed decimal, level 0-9, see [3])
shot effects array (8-bit signed decimal, level 0-9, see [4])
*long form description, in a single line, leading with a *, \ denotes end of each formatted line
-----------------
comments


[1]
0/undefined - single straight
1 - Galaxtec blaster
2 - spreader
3 - dual straight, e.g. railgun
4 - rockets
5 - armor (does not release shots)
6 - repair module
7 - "n-way".  Reading the code for this makes my head hurt.  Used for Homing Mines.
8 - streams of increasing level, e.g. Vulcan
9 - multiple mounts starting at varying points in cycle, e.g. Screwtape

[2]
0/undefined - do nothing
1 - set heading towards an enemy, then revert to 0
2 - accel forwards
3 - accel forwards, decel laterally
4 - accel orwards/left
5 - accel forwards/right
6 - perturb angle within +/- pi/32 radians and revert to 0
7 - perturb angle within +/- pi/16 radians and revert to 0
8 - perturb angle within +/- pi/4 radians and revert to 0
9 - keep updating heading towards an enemy

[3]
after the specified number of seconds, change the shot into
0-9 - a shot of this level / index in all respects but damage
-1 - nothing (remove shot)

[4]
treated as a flag array
____fSst
smoke [t]rail
[s]moke on hit/removal
big [S]moke on hit/removal
[f]ragments on hit